package com.marvels.approve.process.dto;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.marvels.approve.manager.dto.OpinionTypeDTO;
import com.marvels.common.constants.PageConstant;
import com.marvels.common.dto.BaseDTO;


/**工单跟踪表
 * @author 何杰
 * 2018年5月14日
 */
public class LoanApplyCaseDTO extends BaseDTO{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Long id;
	private String caseId;//流程编号
	private String loanId;//申请书编号
	private String channel;//进件渠道
	private String channelName;//
	private String patternCode;//渠道分类 
	private String patternName;//渠道类型名称
	private String productType;//产品大类CODE
	private String productTypeName;//
	private String productCode;//产品小类CODE
	private String productName;//
	private Integer status;//工单状态：1 草稿，0 处理中，2 正常结案，3 异常结案，9 挂起
	private Date hangTime;//挂起时间
	private String hangReason;//挂起原因
	private String approveRst;//批核结果：AR 成功，RJ拒绝
	private String caseStatus;//审批最后的工单流程的状态 ：ZX0；审批退回：SP9；补件重提：BJ8；审批新近件：SP0；审计退回：SJ8；征信重提：ZX8；审计新进件：SJ0；审批重提：SP8
	private Date closeTime;//案件结束时间
	private String custName ;//客户姓名
	private String custCardNo;//客户身份证
	private String custMobile;//电话号码
	private String lockedUser;//锁定人
	private String lockedName;//锁定人姓名
	private String assignee;//处理人
	private String curAssignee;//当前处理人，跟assignee区别在于在设置旧处理人
	private String assigneeName;//处理人名称
	private String priAssignee;//上一处理人
	private Integer applyTerms;//申请期数
	private BigDecimal applyAmount;//申请金额
	private BigDecimal principalAmtAct;//复核贷款金额
	private String curNodeCode;//当前节点
	private String preNodeCode;//上一节点
	private String nextNodeCode;//下一节点
	private String curNodeName;//
	private String preNodeName;//
	private String nextNodeName;//
	private Integer caseType;//进件类型 0 新进件，1补件
	
	private String roleCode;//通过角色查询--查询条件
	private List<String> nodeCodes;
  
	private String actKey;//流程key
	private String actName;//流程名称
	private String procInstId;//流程实例ID
	private Integer caseVersion;//每次退单版本号加一
	
	private Date startCreatedDate;//'创建时间',
	private Date endCreatedDate;//'创建时间', 
	private Date startUpdatedDate;//'更新时间',
	private Date endUpdatedDate;//'更新时间',\
	
	private String employeeName;//客户经理
	private String employeeId;//客户经理id
	private String backReason;//退回原因描述
	private String vetoReason;//否决原因
	private List<String> backReasonCodes;//退回原因码

	private Integer pageNum = PageConstant.CURRPAGE;
	private Integer pageSize = PageConstant.PAGESIZE;
	
	private Long wasteTime;   //取件耗时   （分钟）
	private Integer ywlx;
	
	//工单跟踪日志
	private List<LoanApplyCaseLogDTO> loanApplyCaseLogList;
	//意见类型
	private Map<Integer,List<OpinionTypeDTO>> opinionTypes;
	
	private List<String>  curNodeCodes;
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getCaseId() {
		return caseId;
	}
	public void setCaseId(String caseId) {
		this.caseId = caseId;
	}
	public String getLoanId() {
		return loanId;
	}
	public void setLoanId(String loanId) {
		this.loanId = loanId;
	}
	public String getChannel() {
		return channel;
	}
	public void setChannel(String channel) {
		this.channel = channel;
	}
	public String getChannelName() {
		return channelName;
	}
	public void setChannelName(String channelName) {
		this.channelName = channelName;
	}
	public String getProductType() {
		return productType;
	}
	public void setProductType(String productType) {
		this.productType = productType;
	}
	public String getProductTypeName() {
		return productTypeName;
	}
	public void setProductTypeName(String productTypeName) {
		this.productTypeName = productTypeName;
	}
	public String getProductCode() {
		return productCode;
	}
	public void setProductCode(String productCode) {
		this.productCode = productCode;
	}
	public String getProductName() {
		return productName;
	}
	public void setProductName(String productName) {
		this.productName = productName;
	}
	public Integer getStatus() {
		return status;
	}
	public void setStatus(Integer status) {
		this.status = status;
	}
	public String getApproveRst() {
		return approveRst;
	}
	public void setApproveRst(String approveRst) {
		this.approveRst = approveRst;
	}
	
	public String getCaseStatus() {
		return caseStatus;
	}
	public void setCaseStatus(String caseStatus) {
		this.caseStatus = caseStatus;
	}
	public Date getCloseTime() {
		return closeTime;
	}
	public void setCloseTime(Date closeTime) {
		this.closeTime = closeTime;
	}
 
	public String getCustName() {
		return custName;
	}
	public void setCustName(String custName) {
		this.custName = custName;
	}
	public String getCustCardNo() {
		return custCardNo;
	}
	public void setCustCardNo(String custCardNo) {
		this.custCardNo = custCardNo;
	}
	public String getCustMobile() {
		return custMobile;
	}
	public void setCustMobile(String custMobile) {
		this.custMobile = custMobile;
	}
	public String getLockedUser() {
		return lockedUser;
	}
	public void setLockedUser(String lockedUser) {
		this.lockedUser = lockedUser;
	}
 
	public String getLockedName() {
		return lockedName;
	}
	public void setLockedName(String lockedName) {
		this.lockedName = lockedName;
	}
	public String getAssignee() {
		return assignee;
	}
	public void setAssignee(String assignee) {
		this.assignee = assignee;
	}
	public String getAssigneeName() {
		return assigneeName;
	}
	public void setAssigneeName(String assigneeName) {
		this.assigneeName = assigneeName;
	}
	public String getPriAssignee() {
		return priAssignee;
	}
	public void setPriAssignee(String priAssignee) {
		this.priAssignee = priAssignee;
	}
	public Integer getApplyTerms() {
		return applyTerms;
	}
	public void setApplyTerms(Integer applyTerms) {
		this.applyTerms = applyTerms;
	}
	public BigDecimal getApplyAmount() {
		return applyAmount;
	}
	public void setApplyAmount(BigDecimal applyAmount) {
		this.applyAmount = applyAmount;
	}
	public BigDecimal getPrincipalAmtAct() {
		return principalAmtAct;
	}
	public void setPrincipalAmtAct(BigDecimal principalAmtAct) {
		this.principalAmtAct = principalAmtAct;
	}
	public String getCurNodeCode() {
		return curNodeCode;
	}
	public void setCurNodeCode(String curNodeCode) {
		this.curNodeCode = curNodeCode;
	}
	public String getPreNodeCode() {
		return preNodeCode;
	}
	public void setPreNodeCode(String preNodeCode) {
		this.preNodeCode = preNodeCode;
	}
	public String getNextNodeCode() {
		return nextNodeCode;
	}
	public void setNextNodeCode(String nextNodeCode) {
		this.nextNodeCode = nextNodeCode;
	}
	public String getCurNodeName() {
		return curNodeName;
	}
	public void setCurNodeName(String curNodeName) {
		this.curNodeName = curNodeName;
	}
	public String getPreNodeName() {
		return preNodeName;
	}
	public void setPreNodeName(String preNodeName) {
		this.preNodeName = preNodeName;
	}
	public String getNextNodeName() {
		return nextNodeName;
	}
	public void setNextNodeName(String nextNodeName) {
		this.nextNodeName = nextNodeName;
	}
	
	public Integer getCaseType() {
		return caseType;
	}
	public void setCaseType(Integer caseType) {
		this.caseType = caseType;
	}
 
	public Date getStartCreatedDate() {
		return startCreatedDate;
	}
	public void setStartCreatedDate(Date startCreatedDate) {
		this.startCreatedDate = startCreatedDate;
	}
	public Date getEndCreatedDate() {
		return endCreatedDate;
	}
	public void setEndCreatedDate(Date endCreatedDate) {
		this.endCreatedDate = endCreatedDate;
	}
 
	public Date getStartUpdatedDate() {
		return startUpdatedDate;
	}
	public void setStartUpdatedDate(Date startUpdatedDate) {
		this.startUpdatedDate = startUpdatedDate;
	}
	public Date getEndUpdatedDate() {
		return endUpdatedDate;
	}
	public void setEndUpdatedDate(Date endUpdatedDate) {
		this.endUpdatedDate = endUpdatedDate;
	}
	public Integer getPageNum() {
		return pageNum==null?PageConstant.CURRPAGE:pageNum;
	}
	public void setPageNum(Integer pageNum) {
		this.pageNum = pageNum;
	}
	public Integer getPageSize() {
		return pageSize==null?PageConstant.PAGESIZE:pageSize;
	}
	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}
 
	public Date getHangTime() {
		return hangTime;
	}
	public void setHangTime(Date hangTime) {
		this.hangTime = hangTime;
	}
	public String getCurAssignee() {
		return curAssignee;
	}
	public void setCurAssignee(String curAssignee) {
		this.curAssignee = curAssignee;
	}
	public String getActKey() {
		return actKey;
	}
	public void setActKey(String actKey) {
		this.actKey = actKey;
	}
	public String getActName() {
		return actName;
	}
	public void setActName(String actName) {
		this.actName = actName;
	}
 
	public String getProcInstId() {
		return procInstId;
	}
	public void setProcInstId(String procInstId) {
		this.procInstId = procInstId;
	}
	public String getEmployeeName() {
		return employeeName;
	}
	public void setEmployeeName(String employeeName) {
		this.employeeName = employeeName;
	}
	public String getEmployeeId() {
		return employeeId;
	}
	public void setEmployeeId(String employeeId) {
		this.employeeId = employeeId;
	}
	public String getPatternCode() {
		return patternCode;
	}
	public void setPatternCode(String patternCode) {
		this.patternCode = patternCode;
	}
	public String getPatternName() {
		return patternName;
	}
	public void setPatternName(String patternName) {
		this.patternName = patternName;
	}
	public String getHangReason() {
		return hangReason;
	}
	public void setHangReason(String hangReason) {
		this.hangReason = hangReason;
	}
	public String getBackReason() {
		return backReason;
	}
	public void setBackReason(String backReason) {
		this.backReason = backReason;
	}
	public String getVetoReason() {
		return vetoReason;
	}
	public void setVetoReason(String vetoReason) {
		this.vetoReason = vetoReason;
	}

	public List<String> getBackReasonCodes() {
		return backReasonCodes;
	}
	public void setBackReasonCodes(List<String> backReasonCodes) {
		this.backReasonCodes = backReasonCodes;
	}

	public String getRoleCode() {
		return roleCode;
	}
	public void setRoleCode(String roleCode) {
		this.roleCode = roleCode;
	}
	public List<String> getNodeCodes() {
		return nodeCodes;
	}
	public void setNodeCodes(List<String> nodeCodes) {
		this.nodeCodes = nodeCodes;
	}

	public Long getWasteTime() {
		return wasteTime;
	}
	public void setWasteTime(Long wasteTime) {
		this.wasteTime = wasteTime;
	}
	
	public Integer getCaseVersion() {
		return caseVersion;
	}
	public void setCaseVersion(Integer caseVersion) {
		this.caseVersion = caseVersion;
	}
	public List<LoanApplyCaseLogDTO> getLoanApplyCaseLogList() {
		return loanApplyCaseLogList;
	}
	public void setLoanApplyCaseLogList(List<LoanApplyCaseLogDTO> loanApplyCaseLogList) {
		this.loanApplyCaseLogList = loanApplyCaseLogList;
	}
	public List<String> getCurNodeCodes() {
		return curNodeCodes;
	}
	public void setCurNodeCodes(List<String> curNodeCodes) {
		this.curNodeCodes = curNodeCodes;
	}
	public Map<Integer, List<OpinionTypeDTO>> getOpinionTypes() {
		return opinionTypes;
	}
	public void setOpinionTypes(Map<Integer, List<OpinionTypeDTO>> opinionTypes) {
		this.opinionTypes = opinionTypes;
	}
	public Integer getYwlx() {
		return ywlx;
	}
	public void setYwlx(Integer ywlx) {
		this.ywlx = ywlx;
	}
	
	
}
